﻿using System;
using System.Collections.Generic;
using System.Text;
using UtilZ.Dotnet.Ex.Base;
using UtilZ.Dotnet.Ex.AsynWait;

namespace UtilZ.Dotnet.WindowsDesktopEx.Base
{
    /// <summary>
    /// 遮罩控件工厂抽象类
    /// </summary>
    public abstract class ShadeControlFactoryAbs : IShadeControlFactory
    {
        /// <summary>
        /// 构造函数
        /// </summary>
        public ShadeControlFactoryAbs()
        {

        }

        /// <summary>
        /// 创建带文本提示的遮罩控件
        /// </summary>
        /// <returns>遮罩控件</returns>
        public IPartAsynWait CreateShadeFullControl()
        {
            return this.PrimitiveCreateShadeControl();
        }

        /// <summary>
        /// 创建带文本提示的遮罩控件
        /// </summary>
        /// <returns>遮罩控件</returns>
        protected abstract IPartAsynWait PrimitiveCreateShadeControl();

        /// <summary>
        /// 创建仅动画的遮罩控件
        /// </summary>
        /// <returns>遮罩控件</returns>
        public IPartAsynWait CreateShadeAnimalControl()
        {
            return this.PrimitiveCreateShadeAnimalControl();
        }

        /// <summary>
        /// 创建仅动画的遮罩控件
        /// </summary>
        /// <returns>遮罩控件</returns>
        protected virtual IPartAsynWait PrimitiveCreateShadeAnimalControl()
        {
            throw new NotImplementedException();
        }
    }
}
